// 缓存函数，设置或获取缓存值，带有过期时间戳
export function cache(key, value, seconds) {
  // 获取当前时间戳，单位为秒
  const timestamp = Date.now()
  // 如果key为空，直接返回
  if (!key) {
    return
  }
  // 如果value为空，表示获取缓存
  if (value === null) {
    // 获取缓存值，并按照"|"分割成数组
    const val = uni.getStorageSync(key)
    const tmp = val.split('|')
    // 如果数组的第二个元素不存在或者小于等于当前时间戳，表示缓存已过期，删除缓存并返回空字符串
    if (!tmp[1] || timestamp >= parseInt(tmp[1])) {
      uni.removeStorageSync(key)
      uni.removeStorageSync('userInfo')
      return ''
    }
    // 否则表示缓存未过期，返回数组的第一个元素，即缓存值
    else {
      return tmp[0]
    }
  }
  // 如果value不为空，表示设置缓存
  else {
    // 如果seconds为空，则使用默认值2小时，否则使用传入的值
    const expire = seconds ? timestamp + seconds * 1000 : timestamp + 2 * 60 * 60 * 1000
    // 将缓存值和过期时间戳用"|"连接成一个字符串，并存入缓存
    value = `${value}|${expire}`
    uni.setStorageSync(key, value)
  }
}